#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : 龍皓
# @time    : 2024/12/19 08:57
# @function: 主程序入口
# @version : 1.0.0
from script.CordCloudSignIn import CordCloudSignIn
from utils.taskUtil import get_task
from utils.threadUtil import get_thread
from utils.logUtil import get_logger
from settings import MAX_THREADS, TASK_SCHEDULE
import time

logger = get_logger()
task = get_task()
thread = get_thread(max_threads=MAX_THREADS) # 设置最大线程数为5

def run_cord_cloud():
    cord_cloud_sign_in = CordCloudSignIn()
    # 先立即执行一次任务
    cord_cloud_sign_in.run()
    logger.info("已完成首次CordCloud自动签到，正在添加定时任务......")
    # 添加一个执行签到任务的定时任务（使用cron表达式）
    task_kwargs_cron = TASK_SCHEDULE
    task.add_task(cord_cloud_sign_in.run, task_type='cron', **task_kwargs_cron)
    logger.info("已成功添加定时任务，正在保持运行中......")
    task.keep_run()

if __name__ == '__main__':
    # 添加线程任务
    thread.add_task(run_cord_cloud)
    logger.info("已成功添加线程任务-run_cord_cloud，准备运行中......")
    # 启动所有线程任务
    thread.start_all()
    logger.info("已成功启动所有线程任务，正在保持运行中....")

    try:
        while True:
            time.sleep(60)
            pass
    except KeyboardInterrupt:
        # 当主线程接收到中断信号（如Ctrl+C），等待所有线程任务执行完毕
        thread.join_all()


